package persistencia.dominio.testEv;
import persistencia.*;
import persistencia.dominio.*;

import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
import javax.jdo.Transaction;
import java.util.*;
import javax.jdo.Extent;
import javax.jdo.Query;
import utils.IniFile;
import comun.constantes.*;

import java.io.*;
import server.Singleton;
import java.sql.*;

import javax.swing.*;
import comun.*;
import server.aula.ControlAula;
//import server.domain.enumeraciones.*;

public class TestRecEv
{
	public static Persistencia persistencia= null;
	static Connection conexionSQL = null;
	/*Evaluaciones*/
	static Recurso recursoEvaluaciones = null;
	static Recurso recursoGestionExamen = null;
	static Recurso recursoGestionAutoexamen = null;
	static Recurso recursoGestionCuestionario = null;
	static Recurso recursoCorreccionExamen = null;
	static Recurso recursoRealizarExamen = null;
	static Recurso recursoRealizarAutoexamen = null;
	static Recurso recursoRealizarCuestionario= null;
	/*fin Evaluaciones*/
	
	private static void cargarRecursos() {
		/*evaluaciones*/
		recursoEvaluaciones = new Recurso();
		recursoEvaluaciones.setNombre(RECURSOS.EVALUACIONES);
		recursoEvaluaciones.setDescripcion(RECURSOS.EVALUACIONES);
		recursoEvaluaciones.setOrden(new Long(18));
		recursoGestionExamen = new Recurso();
		recursoGestionExamen.setNombre(RECURSOS.GESTION_EXAMEN);
		recursoGestionExamen.setDescripcion(RECURSOS.GESTION_EXAMEN);
		recursoGestionExamen.setOrden(new Long(19));
		recursoGestionAutoexamen = new Recurso();
		recursoGestionAutoexamen.setNombre(RECURSOS.GESTION_AUTOEXAMEN);
		recursoGestionAutoexamen.setDescripcion(RECURSOS.GESTION_AUTOEXAMEN);
		recursoGestionAutoexamen.setOrden(new Long(22));
		recursoGestionCuestionario = new Recurso();
		recursoGestionCuestionario.setNombre(RECURSOS.GESTION_CUESTIONARIO);
		recursoGestionCuestionario.setDescripcion(RECURSOS.GESTION_CUESTIONARIO);
		recursoGestionCuestionario.setOrden(new Long(24));
		recursoCorreccionExamen = new Recurso();
		recursoCorreccionExamen.setNombre(RECURSOS.CORRECCION_EXAMEN);
		recursoCorreccionExamen.setDescripcion(RECURSOS.CORRECCION_EXAMEN);
		recursoCorreccionExamen.setOrden(new Long(20));
		recursoRealizarExamen = new Recurso();
		recursoRealizarExamen.setNombre(RECURSOS.REALIZAR_EXAMEN);
		recursoRealizarExamen.setDescripcion(RECURSOS.REALIZAR_EXAMEN);
		recursoRealizarExamen.setOrden(new Long(21));
		recursoRealizarAutoexamen = new Recurso();
		recursoRealizarAutoexamen.setNombre(RECURSOS.REALIZAR_AUTOEXAMEN);
		recursoRealizarAutoexamen.setDescripcion(RECURSOS.REALIZAR_AUTOEXAMEN);
		recursoRealizarAutoexamen.setOrden(new Long(23));
		recursoRealizarCuestionario = new Recurso();
		recursoRealizarCuestionario.setNombre(RECURSOS.REALIZAR_CUESTIONARIO);
		recursoRealizarCuestionario.setDescripcion(RECURSOS.REALIZAR_CUESTIONARIO);
		recursoRealizarCuestionario.setOrden(new Long(25));
		persistencia.hacerPersistente(recursoEvaluaciones);
		persistencia.hacerPersistente(recursoGestionExamen);
		persistencia.hacerPersistente(recursoGestionAutoexamen);
		persistencia.hacerPersistente(recursoGestionCuestionario);
		persistencia.hacerPersistente(recursoCorreccionExamen);
		persistencia.hacerPersistente(recursoRealizarExamen);
		persistencia.hacerPersistente(recursoRealizarAutoexamen);
		persistencia.hacerPersistente(recursoRealizarCuestionario);
	}
	
	static public void initPersistencia(){
		persistencia = new Persistencia();
		persistencia.crearTransaccion();
		//REGISTER DRIVER
		try {
			Driver d = (Driver)Class.forName(Singleton.driver).newInstance();
		}catch (Exception e){
			System.out.println(e);
		}
		
		//GET CONNECTION
		conexionSQL=null;
		try{
			System.out.println(Singleton.url);
			conexionSQL = DriverManager.getConnection(Singleton.url,Singleton.userName,Singleton.password);
		}catch(Exception e){
			System.out.println(e);
		}
	}
	
	static public boolean commit(){
		try {
			persistencia.commit();
			conexionSQL.close();
			return true;
		}catch(Exception ex){
			ex.printStackTrace();
			persistencia.rollback();
			try{
				conexionSQL.close();
			}catch(SQLException ex1){
				ex1.printStackTrace();
				return false;
			}
			return false;
		}
	}
	
	static public boolean rollback(){
		try {
			persistencia.rollback();
			conexionSQL.close();
			return true;
		}catch (Exception ex){
			ex.printStackTrace();
			return false;
		}
	}
	
	public static void main(String[] args){
		try{
			initPersistencia(); 
			System.out.println("=======================INICIO LA CARGA DE LA BD==========================");
			cargarRecursos();
			System.out.println("=======================TERMINO LA CARGA DE LA BD==========================");
			commit();
		}catch(Exception ee){
			ee.printStackTrace();
			rollback();
						
		}  
	}
	
	
}




